<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>get&post区别</title>
</head>
<body>
    
</body>
</html>
<script>
    //get & psot都是http请求类型

    //1. 发送的数据数量   
         //get中，只可以发送有限数量的数据，因为数据是在URL中发送的.
         //post中，可以发送大量数据，因为数据是在正主题中(请求头)发送的.


    //2. 安全性 
         //get方法   发送的数据不受保护，因为数据在URl栏中公开，无疑增加漏洞和黑客攻击的风险.
         //post方法  发送的数据是安全的，因为数据未在URl栏公开，还可以在其中使用多种编码技术，灵活具有弹性.   

    //3. 加入书签中 
         //get查询的结果可以加入到书签中，因为它以URl的形式存在，而post查询的结果无法加入书签中.

    //4. 编码
         //在表单中使用get方法时，数据类型中只接受ASCII字符.
         //在表单提交时， post方法不绑定数据类型，并准许二进制和ASCII字符.

    //5. 可变大小 
         //get   方法中的可变大小约为 2000个字符.
         //post  方法最多准许8mb的可变大小.
         
    //6. 缓存
         //get   方法的数据可以缓存
         //post  方法的数据无法缓存 
         
    //7. 主要作用
         //get  方法要用于获取信息         即常用来用户查询信息，明文不能用于机密信息提交.
         //post 方法主要用于更新数据       即常用表单提交，甚至可以传输文件，没有传输限制，安全.


     //补充知识点 
     /*
     get请求传参长度的误区
     //我们经常说get请求参数的大小存在限制，而 post 请求的参数大小是无限制的。
     //实际HTTP协议从未规定GET/POST的请求长度限制是多少。
     //对get请求参数的限制是来源与浏览器或web服务器，
        
     // 浏览器或web服务器限制url的长度。为了明确这个概念，再次强调下面几点:
          1.HTTP 协议未规定 GET 和 POST 的长度限制
          2.GET 的最大长度显示是因为浏览器和 web 服务器限制了 URI 的长度
          3.不同的浏览器和 WEB 服务器，限制的最大长度不一样
          4.要支持 IE，则最大长度为 2083byte，若只支持 Chrome，则最大长度 8182byte     
     */    

     /*
     get 和 post 请求在缓存方面的区别
          get 请求类似于查找的过程，用户获取数据，可以不用每次都与数据库连接，所以可以使用缓存。
          post 不同，post 做的一般是修改和删除的工作，所以必须与数据库交互，所以不能使用缓存。因此 get 请求适合于请求缓存。
          
     缓存一般只适用于那些不会更新服务端数据的请求。
          一般 get 请求都是查找请求，不会对服务器资源数据造成修改，
          而 post 请求一般都会对服务器数据造成修改，
          所以，一般会对 get 请求进行缓存，很少会对 post 请求进行缓存。


     */
</script>